

#ifndef PRJ_CONFIG_H_
#define PRJ_CONFIG_H_
#include "prj_date.h"
#if defined(IT_POWER_01_BOARD)
#define DEVICE_HARD
#define DEVICE_PREFIX "ITP3"
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.01.00"
#elif defined(SP2_BOARD)
#define DEVICE_HARD
#define DEVICE_PREFIX "SP2"
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.00.00"
#elif defined(BOARD_L32)
#define DEVICE_HARD
#define DEVICE_PREFIX "L11"
#define DISTANCE_FLAG 0x4d
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.03.00"
#elif defined(X3_E_BOARD)
#define DEVICE_HARD
#define DEVICE_PREFIX "X3-E"
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.02.00"
#elif defined(R31_BOARD)
#define DEVICE_PREFIX "R31"
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.19.00"
#elif defined(SW03_BOARD)
#define DEVICE_PREFIX "SW03"
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.04.00"
#elif defined(R66_BOARD)
#if defined(UMG01_PROJECT)
#define HARDWARE_PREFIX "1"
#elif defined(GSENSOR_DRV_USE_TWI)
#define HARDWARE_PREFIX "2"
#else
#define HARDWARE_PREFIX "1"
#endif
#ifdef PROJECT_T3C0
#define DEVICE_HARD
#define DEVICE_PREFIX "B20"
#elif defined(UMG01_PROJECT)
#define DEVICE_HARD
#define DEVICE_PREFIX "UMG01"
#else 
#define DEVICE_PREFIX "R66"
#endif
// #define DEVICE_DETECT_ANY
#define DISTANCE_FLAG 0x34
#define HARDWARE_VERSION HARDWARE_PREFIX ".0"
#define FIRMWARE_VERSION HARDWARE_PREFIX ".32.00"
#elif defined(R69_BOARD)
#define DEVICE_PREFIX "R69"
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.00.00"
#elif defined(R33_BOARD)
#if defined(HAN_NA_SEN_PROJECT)
#define DEVICE_HARD
#define YQ_BATTERY
#define DEVICE_PREFIX "HNS"
#define HARDWARE_PREFIX "2"
#else
#define DEVICE_PREFIX "R33"
#define YQ_BATTERY
#define HARDWARE_PREFIX "1"
#endif
#define HARDWARE_VERSION HARDWARE_PREFIX ".0"
#define FIRMWARE_VERSION HARDWARE_PREFIX ".38.00"
#elif defined(SM02_BOARD)
#define DEVICE_PREFIX "SM02"
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.03.00"
#elif defined(R911_V1_1_BOARD)
#define DEVICE_PREFIX "R911"
#define HARDWARE_VERSION "1.1"
#define FIRMWARE_VERSION "2.77.00"
#elif defined(R911_V1_11_BOARD)
#if defined(PROJECT_RS911)
#define DEVICE_PREFIX "RS911"
#else
#define DEVICE_PREFIX "R911"
#endif
#ifdef GC9A01
#define HARDWARE_VERSION "1.12"
#define FIRMWARE_VERSION "4.08.00"
#else //!< #ifdef GC9A01
#define HARDWARE_VERSION "1.11"
#define FIRMWARE_VERSION "3.17.00"
#endif //!< #ifdef GC9A01
#elif defined(R911M_V1_11_BOARD)
#define DEVICE_PREFIX "R911M"
#ifdef GC9A01
#define HARDWARE_VERSION "1.12"
#define FIRMWARE_VERSION "3.01.00"
#else //!< #ifdef GC9A01
#define HARDWARE_VERSION "1.11"
#define FIRMWARE_VERSION "1.10.00"
#endif //!< #ifdef GC9A01

#elif defined(R911M2_V1_11_BOARD)
#define DEVICE_PREFIX "R911M"
#ifdef GC9A01
#define HARDWARE_VERSION "2.12"
#define FIRMWARE_VERSION "4.01.00"
#else //!< #ifdef GC9A01
#define HARDWARE_VERSION "2.11"
#define FIRMWARE_VERSION "2.10.00"
#endif
#elif defined(Z1_V1_11_BOARD)
#define DEVICE_PREFIX "Z1"
#define HARDWARE_VERSION "1.11"
#define FIRMWARE_VERSION "3.13.00"
#elif defined(R30_BOARD)
#define DEVICE_PREFIX "R30"
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.63.00"
#elif defined(R32_BOARD_V1_1)
#define DEVICE_PREFIX "R32"
#define HARDWARE_VERSION "1.1"
#define FIRMWARE_VERSION "2.12.00"
#elif defined(BT100_BOARD)
#if defined(IT_POWER_01_UI)
#ifdef DISTANCE_ESTIMATE
// #define DEVICE_DETECT_ANY
#define DISTANCE_FLAG 0x9e
#define DEVICE_PREFIX "ITP2"
#else
#define DEVICE_PREFIX "ITP"
#endif
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.24.00"
#else
#ifdef NO_INFRARED_DETECTOR
#define HARDWARE_PREFIX "2"
#else
#define HARDWARE_PREFIX "1"
#endif
#if defined(AXILLARY_TEMPERATURE)
#define DEVICE_PREFIX "AT100"
#else
#if defined(NO_INFRARED_DETECTOR)
#ifdef SWT_PROJECT
#if defined(SWTA_PROJECT)
#define DEVICE_PREFIX "SA"
#elif defined(SW07_PROJECT)
#if defined(PROJECT_SWB)
#define DISTANCE_FLAG 0x3a
#define DEVICE_PREFIX "SWB"
#else
#define DEVICE_PREFIX "SW07"
#endif
#else
#define DEVICE_PREFIX "SWT"
#endif
#elif defined(BWHL1T)
#define DEVICE_PREFIX "BW-HL1T"
//#define VERSION_NUMBER ".36.00"
#elif defined(ITA_PROJECT)
#define DEVICE_PREFIX "ITA"
#elif defined(BT101)
#define DEVICE_PREFIX "BT101"
#elif defined(W01_PROJECT)
#define DEVICE_PREFIX "W1"
#elif defined(PROJECT_BT102)
#define DEVICE_PREFIX "B2"

#elif defined(PROJECT_ENERGYFPRO)
#define DEVICE_PREFIX "ENERGYFPRO"
#elif defined(PROJECT_T1C0)
#define DISTANCE_FLAG 0x9e
#define DEVICE_PREFIX "T1C0"
#elif defined(PROJECT_T1C1)
#define DISTANCE_FLAG 0x13
#define DEVICE_PREFIX "L12"
#define DEVICE_HARD
#elif defined(PROJECT_B3)
#define DEVICE_PREFIX "B3"
#elif defined(PROJECT_FG_SW_D05)
#define DEVICE_PREFIX "FG-SW-D05"
#else
#define DEVICE_PREFIX "BT100"
//#define VERSION_NUMBER ".37.00"
#endif
#else
#if defined(SWTA_PROJECT)
#define DEVICE_PREFIX "SA"
#else
#define DEVICE_PREFIX "L8"
#endif
#endif
#endif
#define HARDWARE_VERSION HARDWARE_PREFIX ".0"
#ifndef VERSION_NUMBER
#define VERSION_NUMBER ".45.00"
#endif
#define FIRMWARE_VERSION HARDWARE_PREFIX VERSION_NUMBER
#endif
#elif defined(R32_BOARD)
#define DEVICE_PREFIX "R32"
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.39.00"
#elif defined(L1_BOARD)
#define DEVICE_PREFIX "NB-213"
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.30.00"
#elif defined(Z2_BOARD)
#define DEVICE_PREFIX "Z2"
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.09.00"
#elif defined(R35_BOARD)
#define DEVICE_PREFIX "R35"
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.00.00"
#elif defined(R30A_BOARD)
#define DEVICE_PREFIX "R30A"
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.01.00"
#elif defined(WT100_BOARD)
#if defined(WT180_BOARD)
#define DEVICE_PREFIX "WT180"
#else
#define DEVICE_PREFIX "WT100"
#endif
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.10.00"
#elif defined(R5MAX_BOARD)
#define DEVICE_PREFIX "R5MAX"
#define HARDWARE_SUFFIX " JMI"
#define HARDWARE_VERSION "2.0"
#define FIRMWARE_VERSION "2.14.00"
#elif defined(R5_BOARD)
#if defined(PROJECT_WB01)
#define DISTANCE_FULL_FEATURED 
#define DEVICE_PREFIX "WB"
#define DISTANCE_FLAG 0xb7
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.08.00"
#elif defined(PROJECT_WB02)
#define DEVICE_HARD 
#define DEVICE_PREFIX "WB02"
#define DISTANCE_FLAG 0xb7
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.00.03"
#else
#define DEVICE_PREFIX "R5MAX"
#define HARDWARE_VERSION "1.0"
#define FIRMWARE_VERSION "1.10.00"
#endif
#endif

#define HARDWARE_VERSION_STRING DEVICE_PREFIX "_V" HARDWARE_VERSION
// #define FW_REV_STR FW_STRING_TYPE FW_STRING_VERSION FW_STRING_DATE R32_V1.20.00_190918

// #define FW_REV_NO_DATA FW_STRING_TYPE FW_STRING_VERSION R32_V1.20.00_
// #define FW_REV_NO_TYPE FW_STRING_VERSION FW_STRING_DATE 1.20.00_190918

#endif
